// 测试视频收藏/取消收藏功能
const axios = require('axios');

const BASE_URL = 'http://localhost:3000/api/v1';
const TEST_VIDEO_ID = '9'; // 测试视频ID

async function testToggleFavorite() {
  console.log('开始测试视频收藏/取消收藏功能...');
  
  try {
    // 1. 登录获取token
    console.log('正在登录用户...');
    const loginResponse = await axios.post(`${BASE_URL}/auth/login`, {
      username: 'user',
      password: '123456'
    });
    
    const token = loginResponse.data.data.tokens.accessToken;
    console.log('✅ 登录成功，获取token');
    console.log('用户信息:', loginResponse.data.data.user);
    
    // 2. 测试收藏视频
    console.log(`\n测试收藏视频 ID: ${TEST_VIDEO_ID}`);
    const favoriteResponse = await axios.post(
      `${BASE_URL}/users/me/favorites/video/${TEST_VIDEO_ID}`,
      {},
      {
        headers: {
          Authorization: `Bearer ${token}`
        }
      }
    );
    
    console.log(`收藏响应状态码: ${favoriteResponse.status}`);
    console.log('收藏响应数据:', favoriteResponse.data);
    console.log('✅ 视频收藏功能测试通过');
    
    // 3. 测试取消收藏视频
    console.log(`\n测试取消收藏视频 ID: ${TEST_VIDEO_ID}`);
    const unfavoriteResponse = await axios.post(
      `${BASE_URL}/users/me/favorites/video/${TEST_VIDEO_ID}`,
      {},
      {
        headers: {
          Authorization: `Bearer ${token}`
        }
      }
    );
    
    console.log(`取消收藏响应状态码: ${unfavoriteResponse.status}`);
    console.log('取消收藏响应数据:', unfavoriteResponse.data);
    console.log('✅ 视频取消收藏功能测试通过');
    
    // 4. 再次收藏视频（恢复初始状态）
    console.log(`\n再次收藏视频 ID: ${TEST_VIDEO_ID} (恢复初始状态)`);
    await axios.post(
      `${BASE_URL}/users/me/favorites/video/${TEST_VIDEO_ID}`,
      {},
      {
        headers: {
          Authorization: `Bearer ${token}`
        }
      }
    );
    
    console.log('🎉 所有视频收藏/取消收藏功能测试通过！');
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message);
    if (error.response) {
      console.error('错误状态码:', error.response.status);
      console.error('错误数据:', error.response.data);
    }
    process.exit(1);
  }
}

// 运行测试
testToggleFavorite();